import os

from django.core.asgi import get_asgi_application
from channels.routing import ProtocolTypeRouter, URLRouter
from channels.auth import AuthMiddlewareStack
# 1. 先设置环境变量，指明 settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'InterviewAgent.settings')

# 2. 获取 Django 的 ASGI 应用（这个会初始化 apps registry）
django_asgi_app = get_asgi_application()

# 3. 推迟导入会触发模型加载的模块到这里
from Interview.urls import websocket_urlpatterns

# 4. 最终把 HTTP 和 WebSocket 合到一起
application = ProtocolTypeRouter({
    'http': django_asgi_app,       # 普通 HTTP 请求由 Django 处理
    'websocket': AuthMiddlewareStack(
        URLRouter(websocket_urlpatterns)
    ),                              # WebSocket 请求由 Channels 处理
})
